Broadly stated, transfer functions represent either linear, time invariant systems or time varying, adaptive systems. For a linear time invariant system, a predetermined impulse function is used for excitation and an impulse response results. Given any other input waveform, the impulse response can be utilized by convolving the impulse response with the input waveform to determine the output. In contrast, in an adaptive system the impulse function is changing at every data sample point or set of data samples. Therefore, the adaptive system is time varying or nonlinear. A digital filter is directed to a particular transfer function by an adaption process depending upon the desired function of the filter. One application of a digital filter is to achieve the minimum mean square error when filtering a set of data with a predetermined transfer function. This function is known as the least-mean-squares (LMS) algorithm. The error represents an error between some desired goal and what the filter is actually outputting and is a measurement of the misadjustment of the filter. The LMS algorithm involves: (1) an adaption computation which is an update of coefficients in the filter based in part upon the previous error; (2) a convolution computation which is an accumulation of the product of predetermined coefficient values and data values; (3) and an error calculation. The error calculation is a subtraction of the outputted value of the convolution computation from predetermined desired value.
An example of a commercially available adaptive filter processor is the Fujitsu MB87XXAFP which is capable of supporting the LMS adaptive FIR filter algorithm. In known LMS algorithm systems, the convolution calculation is initially performed from which the error is determined. Then the update calculation, in which the error is utilized, is performed. For very high multiple tap filters this means that the convolution computation for all the taps must be initially computed, and then the error and update calculations for all the taps must be performed. Disadvantages with the known LMS algorithm implementations include the large number of processor clock cycles required to implement a multiple tap filter, the use of multiple memory structures to store coefficient, data and error values, and inefficiency in pipelining multiple, disjoint filters. Typically, previous systems which have implemented multiple filter functions in a pipelined fashion have used individual integrated circuit products which operate in a cascaded structure.